from PIL import Image, ImageEnhance
import pytesseract


def enhance_image(image_path):
    """增强图像对比度，有助于提高OCR识别精度"""
    img = Image.open(image_path)
    enhancer = ImageEnhance.Contrast(img)  # 对比度增强
    img_enhanced = enhancer.enhance(2.0)  # 提高对比度因子
    return img_enhanced


def recognize_text_from_image(image_path, tessdata_dir=None):
    """
    从给定的图片路径中提取文字信息。

    :param image_path: 图片文件路径
    :param tessdata_dir: Tesseract的数据目录路径，如果需要的话
    :return: 提取的文字内容
    """
    if tessdata_dir:
        pytesseract.pytesseract.tesseract_cmd = r'[你的Tesseract安装路径]'  # 如果Tesseract不在环境变量中，请指定完整路径

    # 增强图像
    img = enhance_image(image_path)

    # 使用pytesseract进行文字识别
    text = pytesseract.image_to_string(img, lang='chi_sim')  # 'chi_sim'表示简体中文
    return text


def main():
    # 图片路径，请替换为实际路径
    image_path = '/home/weiqiangren/Python/project/py-basic-exercises/图片文字识别/企业微信截图_17387341276905.png'  # 替换为你的图片路径

    # 调用函数并打印结果
    recognized_text = recognize_text_from_image(image_path)
    print("识别出的文字：")
    print(recognized_text)


if __name__ == "__main__":
    main()